Many system designs begin as ad hoc sketches on the back of a napkin. These crude diagrams attest to the value of diagramming as a design tool. A relatively simple diagram can depict important interactions and relationships between different system components. Oftentimes, however, a drawing may later appear confusing or ambiguous to its own author. This problem often stems from a lack of notational consistency in a diagram.
A wide variety of modeling methodologies attempt to formalize the meaning associated with different diagram symbols. For example, UML (Unified Modeling Language) provides a general-purpose notational language for specifying and visualizing complex software and other systems. In particular, UML proponents advocate an approach that represents a system as a collection of objects. Different types of UML diagrams can portray various views of the system.
Many different vendors offer design tools that ease construction of system diagrams. For example, Rational Rose® provides a suite of tools that ease construction of UML diagrams. These tools provide a user interface that features a palette of UML graphic symbols for placement on a diagram.